package com.bifrost.service;


import com.bifrost.entity.Order;
import com.bifrost.entity.OrderItem;
import com.bifrost.model.order.OrderDetailRO;
import com.bifrost.entity.User;

import com.bifrost.model.ro.StatementRO;

import com.bifrost.exception.CancelOrderException;

import com.bifrost.model.vo.OrderVO;
import com.bifrost.model.vo.PageVO;
import org.springframework.data.domain.Page;

import java.util.List;

public interface AdminOrderService {

    PageVO findByPage(Long categoryId, String shippingType, String orderNumber, String orderStatus, List<Long> merchantStoreIdList, String productCode, String productName, String startTime, String endTime, Integer pageCode, Integer pageSize);

    PageVO getOrders(String cStartTime, String cEndTime,Long categoryId, String shippingType, String orderNumber, String orderStatus, List<Long> merchantStoreIdList, String productCode, String productName, String startTime, String endTime, Integer pageCode, Integer pageSize);

    /**
     * 返回订单明细
     *
     * @param orderId orderId
     * @return OrderVO
     */
    OrderVO getOrderVO(Long orderId);

    /**
     * 打印取货单
     *
     * @param orderId orderId
     */
    void updatePrintCount(Long orderId);

    PageVO getSellDetailReport(User user, StatementRO statementRO, int page, int pageSize, boolean exportFlag);

    void cancel(User user, Long orderId) throws CancelOrderException;

    Page<OrderItem> listDetail(OrderDetailRO ro, List<Long> merchantStoreIdList);

    List<OrderItem> exportDetail(OrderDetailRO ro, List<Long> merchantStoreIdList);
}
